home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 20 / Cream of the Crop 20 (Terry Blount) (1996).iso / bbs / qb281cz2.zip / STRUCT.281 < prev    next >
Text File  |  1996-07-07  |  25KB  |  669 lines

  1.   (****************************************************************************)
  2.   (*  Structures document for QuickBBS version 2.81 Zeta-2.                   *)
  3.   (*                                                                          *)
  4.   (*  This information may be freely copied and used at no charge by any      *)
  5.   (*  party to write utilities and other software which enhances the use of   *)
  6.   (*  the QuickBBS software.                                                  *)
  7.   (*                                                                          *)
  8.   (*  Use of this information in any other BBS program without the permission *)
  9.   (*  Of Matrix Technologies is strictly prohibited.                          *)
  10.   (*                                                                          *)
  11.   (*      Copyright 1991-96 Matrix Technology                                 *)
  12.   (*      All Rights Reserved.                                                *)
  13.   (****************************************************************************)
  14.  
  15.   (****************************************************************************)
  16.   (*     See the file STRUCTURE.DOC for information on these structures!      *)
  17.   (****************************************************************************)
  18.  
  19. Const
  20. {$IFDEF GOLDBASE}
  21.   MaxMsgAreas  = 500;
  22.   FileExt = '.DAT';
  23. {$ELSE}
  24.   MaxMsgAreas  = 200;
  25.   FileExt = '.BBS';
  26. {$ENDIF}
  27. {  MaxFileAreas = 200; infinity }
  28.   MaxLanguages = 30;
  29.   MaxEvents    = 30;
  30.   MaxProtocols = 20;
  31.  
  32. type
  33.  
  34.   FlagType = array[1..4] of Byte;
  35.  
  36.   UserIdxRecord = record { USERIDX.BBS or USERIDX.DAT }
  37.                     NameCRC : LongInt;
  38.                     AliasCRC: LongInt;
  39.                   end;
  40.  
  41.   UserRecord = record { USERS.BBS or USERS.DAT }
  42.                  Name        : String[35];
  43.                  City        : String[25];
  44.                  ReservedZero: Byte; { Reserved, should always be 0 }
  45.                  Language    : Byte;
  46.                  PwdCrc      : Longint;
  47.                  PwdChangeDate,
  48.                  ExpireDate  : Word; { Number of days since 1/1/1900 }
  49. {$IFDEF GOLDBASE}
  50.                  HighMsgRead : LongInt;
  51. {$ELSE}
  52.                  UnusedSpace : LongInt;
  53. {$ENDIF}
  54.                  Attrib2     : Byte;   
  55.                  ExtraSpace  : Byte;
  56.                  DataPhone,
  57.                  HomePhone   : String[12];
  58.                  LastTime    : String[5];
  59.                  LastDate    : String[8];
  60.                  Attrib      : Byte;
  61.                  Flags       : FlagType;
  62.                  Credit,
  63.                  Pending,
  64. {$IFDEF GOLDBASE}
  65.                  TimesPosted : Word;
  66.                  ObsoleteField,
  67. {$ELSE}
  68.                  TimesPosted,
  69.                  HighMsgRead,
  70. {$ENDIF}
  71.                  SecLvl,
  72.                  Times,
  73.                  Ups,
  74.                  Downs,
  75.                  UpK,
  76.                  DownK       : Word;
  77.                  TodayK      : Integer;
  78.                  Elapsed,
  79.                  Len         : Integer;
  80.                  CombinedPtr : Word; (* Record number in COMBINED.BBS *)
  81.                                         (* Note:  0 signifies no combined record assigned *)
  82.  
  83.                  AliasPtr    : Word; (* Record number in ALIAS.BBS *)
  84.                                       (* Note:  0 signifies no alias record assigned *)
  85.                  Birthday    : Longint; { Number of days since 1/1/1900 }
  86.                end;
  87.  
  88.  
  89. (* Attrib:
  90.       Bit 0: Deleted
  91.       Bit 1: Screen Clear Codes
  92.       Bit 2: More Prompt
  93.       Bit 3: ANSI
  94.       Bit 4: No-Kill
  95.       Bit 5: Ignore Download Hours
  96.       Bit 6: ANSI Full Screen Editor
  97.       Bit 7: Sex (0=male, 1=female)
  98. *)
  99. (* Attrib2:
  100.       Bit 0: Guest Account              (No Password Needed)
  101.       Bit 1: SSR Configured On/Off      (False/0 = Unused., True/1 = Activated)
  102.       Bit 2: Not Defined Yet (Should be False/0)
  103.       Bit 3: Not Defined Yet (Should be False/0)
  104.       Bit 4: Not Defined Yet (Should be False/0)
  105.       Bit 5: Not Defined Yet (Should be False/0)
  106.       Bit 6: Not Defined Yet (Should be False/0)
  107.       Bit 7: Not Defined Yet (Should be False/0)
  108. *)
  109.  
  110. type
  111.  
  112.   UserActivityType = (InMenu, InDoor, InCallback, 
  113.                       ReadingMessages, WritingMessage,
  114.                       ChattingWithSysop, ChattingWithUsers,
  115.                       AnsweringQuestionaire, ViewingTextFile, 
  116.                       DownloadingFile, UploadingFile, ViewingFileList, 
  117.                       DoingFileSearch, LoggingOn, LoggingOff, WaitingForCall);
  118.  
  119.  
  120.   USERONrecord   = record { USERON.BBS }
  121.                      Name           : String[35];
  122.                      Alias          : String[35];
  123.                      Line           : Byte;
  124.                      Baud           : Word;
  125.                      City           : String[25];
  126.                      DoNotDisturb   : Boolean;
  127.                      Conference     : Byte;
  128.                      Activity       : UserActivityType;
  129.                      Language       : Byte;
  130.                      Spare          : Array[2..9] of Byte;
  131.                    end;
  132.  
  133.   AliasRecord = String[35]; (* for ALIAS.BBS *)
  134.   (* Note: record 0 of ALIAS.BBS is a placeholder only, and contains no
  135.      information. *)
  136.  
  137.   MsgToIdxRecord = String[35]; { MSGTOIDX.BBS or MSGTOIDX.DAT }
  138.  
  139.   MsgTxtRecord = String[255]; { MSGTXT.BBS or MSGTXT.DAT }
  140.  
  141.   { Nodelist Records *************************************************** }
  142.  
  143.   NodeTypes      = (ntZone, ntRegion, ntNet, ntNode, ntPrefix);
  144.  
  145.   NodeIdxRecord  = record
  146.                        NodeType       : NodeTypes;
  147.                        Number,
  148.                        Cost           : Word;
  149.                        RawFile        : Byte;
  150.                        RawPos         : LongInt;
  151.                    end;
  152.  
  153.   FileNameType   = String[12];
  154.  
  155.   NodeIncRecord  = record
  156.                        FileName       : FileNameType;
  157.                        DateStamp      : LongInt;
  158.                    end;
  159.  
  160.   { Message Records ******************************************************}
  161.  
  162.   CombSelectType = array[1..MaxMsgAreas] of Boolean; (* for COMBINED.BBS *)
  163.   (* Note: record 0 of COMBINED.BBS is a placeholder only, and contains no
  164.      information. *)
  165.  
  166.  
  167.   InfoRecord = record
  168. {$IFDEF GOLDBASE}
  169.                  LowMsg  : LongInt; { Lowest Message in File }
  170.                  HighMsg : LongInt; { Highest Message in File }
  171.  
  172.                  TotalActive : LongInt; { Total Active Messages }
  173.  
  174.                  ActiveMsgs : array[1..MaxMsgAreas] of Word;
  175. {$ELSE}
  176.                  LowMsg  : Integer; { Lowest Message in File }
  177.                  HighMsg : Integer; { Highest Message in File }
  178.  
  179.                  TotalActive : Integer; { Total Active Messages }
  180.  
  181.                  ActiveMsgs : array[1..MaxMsgAreas] of Integer;
  182. {$ENDIF}
  183.                end;
  184.  
  185.   IdxRecord = record { MSGIDX.BBS or MSGIDX.DAT }
  186. {$IFDEF GOLDBASE}
  187.                 MsgNum : LongInt;
  188.                 Board  : Word;
  189. {$ELSE}
  190.                 MsgNum : Integer;
  191.                 Board  : Byte;
  192. {$ENDIF}
  193.               end;
  194.  
  195.   HdrRecord = record { MSGHDR.BBS or MSGHDR.DAT }
  196. {$IFDEF GOLDBASE}
  197.                 MsgNum,
  198.                 ReplyTo,
  199.                 SeeAlsoNum : LongInt;
  200. {$ELSE}
  201.                 MsgNum,
  202.                 ReplyTo,
  203.                 SeeAlsoNum,
  204. {$ENDIF}
  205.                 TRead    : Integer;
  206. {$IFDEF GOLDBASE}
  207.                 StartRec : LongInt;
  208. {$ELSE}
  209.                 StartRec : Word;
  210. {$ENDIF}
  211.                 NumRecs,
  212.                 DestNet,
  213.                 DestNode,
  214.                 OrigNet,
  215.                 OrigNode : Integer;
  216.                 DestZone,
  217.                 OrigZone : Byte;
  218.                 Cost     : Integer;
  219.                 MsgAttr,
  220.                 NetAttr, (* NOTE:  MsgAttr and NetAttr are WORD for GOLDBASE *)
  221. {$IFDEF GOLDBASE}
  222.                 Board    : Word;
  223. {$ELSE}
  224.                 Board    : Byte;
  225. {$ENDIF}
  226.                 PostTime : String[5];
  227.                 PostDate : String[8];
  228.                 WhoTo,
  229.                 WhoFrom  : String